package ru.dadle8.service.api.helper;

import org.telegram.telegrambots.meta.api.methods.AnswerCallbackQuery;
import org.telegram.telegrambots.meta.api.methods.send.SendMediaGroup;
import org.telegram.telegrambots.meta.api.methods.send.SendMessage;
import org.telegram.telegrambots.meta.api.methods.send.SendVideo;
import org.telegram.telegrambots.meta.api.methods.updatingmessages.DeleteMessage;
import org.telegram.telegrambots.meta.api.methods.updatingmessages.EditMessageText;
import org.telegram.telegrambots.meta.api.objects.CallbackQuery;
import org.telegram.telegrambots.meta.api.objects.replykeyboard.InlineKeyboardMarkup;
import org.telegram.telegrambots.meta.api.objects.replykeyboard.ReplyKeyboard;
import ru.dadle8.model.bot.entity.ContentMessage;
import ru.dadle8.model.bot.entity.MessageCallbackData;

import java.util.List;

public interface MessageHelper {

    SendMessage sendMessage(Long chatId, String text);

    SendMessage sendMessage(Long chatId, String text, ReplyKeyboard replyKeyboard);

    SendMessage sendHideKeyboardMessage(Long chatId, String text);

    AnswerCallbackQuery sendAnswerCallbackQuery(CallbackQuery callbackQuery);

    EditMessageText sendEditMessageText(Long chatId, Integer messageId, String text);

    EditMessageText sendEditMessageText(Long chatId, Integer messageId, String text, InlineKeyboardMarkup inlineKeyboardMarkup);

    DeleteMessage sendDeleteMessage(Long chatId, Integer messageId);

    SendVideo sendVideo(Long chatId, ContentMessage contentMessage);

    List<SendMediaGroup> sendMediaGroups(Long chatId, ContentMessage contentMessage);

    MessageCallbackData getMessageCallbackData(CallbackQuery callbackQuery);

}
